package com.plian.system.entity.pm.property;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * @description:
 * @author: gangan
 * @create: 2020-07-08 14:42
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "BaseProperty对象", description = "产权基本信息")
public class BaseProperty implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.UUID)
    @ApiModelProperty(value = "主键")
    private String id;

    /**
     * 国家出资
     */
    @ApiModelProperty(value = "国家出资")
    private String actualCapital1;

    /**
     * 国有法人出资
     */
    @ApiModelProperty(value = "国有法人出资")
    private String actualCapital2;

    /**
     * 国有绝对控股法人出资
     */
    @ApiModelProperty(value = "国有绝对控股法人出资")
    private String actualCapital3;

    /**
     * 国有实际控制法人出资
     */
    @ApiModelProperty(value = "国有实际控制法人出资")
    private String actualCapital4;

    /**
     * 其他
     */
    @ApiModelProperty(value = "其他")
    private String actualCapital5;

    /**
     * 合计
     */
    @ApiModelProperty(value = "合计")
    private String actualCapital6;

    /**
     * 国家出资 原币
     */
    @ApiModelProperty(value = "国家出资 原币")
    private String originalActualCapital1;

    /**
     * 国有法人出资 原币
     */
    @ApiModelProperty(value = "国有法人出资 原币")
    private String originalActualCapital2;

    /**
     * 国有绝对控股法人出资 原币
     */
    @ApiModelProperty(value = "国有绝对控股法人出资 原币")
    private String originalActualCapital3;

    /**
     * 国有实际控制法人出资 原币
     */
    @ApiModelProperty(value = "国有实际控制法人出资 原币")
    private String originalActualCapital4;

    /**
     * 其他 原币
     */
    @ApiModelProperty(value = "其他 原币")
    private String originalActualCapital5;

    /**
     * 合计 原币
     */
    @ApiModelProperty(value = "合计 原币")
    private String originalActualCapital6;

    /**
     * 工商登记日期
     */
    @ApiModelProperty(value = "工商登记日期", required = true)
    private String aicBsDate;

    /**
     * 工商登记信息是否与产权登记信息一致
     */
    @ApiModelProperty(value = "工商登记信息是否与产权登记信息一致  0否1是")
    private String aicIsAgreement;

    /**
     * 工商社会统一信用代码
     */
    @ApiModelProperty(value = "工商社会统一信用代码" , required = true)
    private String aicOrgCode;

    /**
     * 不一致理由
     */
    @ApiModelProperty(value = "不一致理由")
    private String aicReason;

    /**
     * 工商注册日期
     */
    @ApiModelProperty(value = "工商注册日期", required = true)
    private String aicRegDate;

    /**
     * 评估报告号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "评估报告号")
    private String assessmentCode;

    /**
     * 备案号或核准文件号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "备案号或核准文件号")
    private String assessmentFileCode;

    /**
     * 中介机构名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "中介机构名称")
    private String assessmentName;

    /**
     * 备案或核准单位名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "备案或核准单位名称")
    private String assessmentOrgName;

    /**
     * 非货币出资资产评估备案表或核准文件理由描述
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "非货币出资资产评估备案表或核准文件理由描述")
    private String assessmentReason;

    /**
     * 工商登记日期
     */
    @ApiModelProperty(value = "工商登记日期", required = true)
    private String bsDate;

    /**
     * 经营范围
     */
    @ApiModelProperty(value = "经营范围")
    private String businessScope;

    /**
     * 主要出资人组织机构代码
     */
    @ApiModelProperty(value = "主要出资人组织机构代码", required = true)
    private String capitalOrgCode;

    /**
     * 计划清理时间
     */
    @ApiModelProperty(value = "计划清理时间")
    private String clearDate;

    /**
     * 理由描述
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "理由描述")
    private String constitutionReason;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 创建用户
     */
    @ApiModelProperty(value = "创建用户")
    private String createUser;

    /**
     * 币种 编码014
     */
    @ApiModelProperty(value = "币种 编码014")
    private String currency;

    /**
     * 决策或批复文件号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "决策或批复文件号")
    private String decisionFileCode;

    /**
     * 决策或批复文件名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "决策或批复文件名称")
    private String decisionFileName;

    /**
     * 决策或批复单位名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "决策或批复单位名称")
    private String decisionOrgName;

    /**
     * 经济行为决策或批复文件理由描述
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "经济行为决策或批复文件理由描述")
    private String decisionReason;

    /**
     * 所属部门 编码111
     */
    @ApiModelProperty(value = "所属部门")
    private String departments;

    /**
     * 成立日期
     */
    @ApiModelProperty(value = "成立日期")
    private String establishmentDate;

    /**
     * 执行事务合伙人统一信用编码
     */
    @ApiModelProperty(value = "执行事务合伙人统一信用编码")
    private String executiveCode;

    /**
     * 执行事务合伙人
     */
    @ApiModelProperty(value = "执行事务合伙人  nature=2(合伙企业) 必填")
    private String executivePartner;

    /**
     * 注册金额（外币）
     */
    @ApiModelProperty(value = "注册金额（外币） nature=1(境外企业) 必填")
    private String fcRegCapita;

    /**
     * 填报单位
     */
    @ApiModelProperty(value = "填报单位")
    private String fillOrgId;

    /**
     * 单据类型码
     */
    @ApiModelProperty(value = "单据类型码")
    private String formType;



    /**
     * 出资企业统一信用编码
     */
    @ApiModelProperty(value = "出资企业统一信用编码")
    private String investmentCode;

    /**
     * 出资企业
     */
    @ApiModelProperty(value = "出资企业")
    private String investmentEnterprise;

    /**
     * 是否有非货币出资资产评估备案表或核准文件
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "是否有非货币出资资产评估备案表或核准文件  0否1是")
    private String isAssessment;

    /**
     * 是否已办工商
     */
    @ApiModelProperty(value = "是否已办工商  0否1是")
    private String isBshandle;

    /**
     * 是否有企业章程
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "是否有企业章程  0否1是")
    private String isConstitution;

    /**
     * 是否有经济行为决策或批复文件
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "是否有经济行为决策或批复文件  0否1是")
    private String isEconomicBehavior;

    /**
     * 是否境外转投境内企业
     */
    @ApiModelProperty(value = "是否境外转投境内企业 0否1是")
    private String isOverseasToDomestic;


    /**
     * 是否存在个人代持股
     */
    @ApiModelProperty(value = "是否存在个人代持股 0否1是  nature=1(境外企业) 必填")
    private String isPersonalHolding;

    /**
     * 是否有企业名称预先核准通知书
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "是否有企业名称预先核准通知书  0否1是")
    private String isPriorNotice;

    /**
     * 是否为私募投资基金
     */
    @ApiModelProperty(value = "是否为私募投资基金  0否1是")
    private String isPrivateFund;

    /**
     * 是否特殊目的公司
     */
    @ApiModelProperty(value = "是否特殊目的公司  0否1是 nature=1(境外企业) 必填")
    private String isSpecial;

    /**
     * 是否集团主业，1是，0否
     */
    @ApiModelProperty(value = "是否集团主业，1是，0否")
    private String isStateFunded;

    /**
     * 是否有验资报告
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "是否有验资报告  0否1是")
    private String isVerification;

    /**
     * 主要行业 编码110（多个行业,隔开）
     */
    @ApiModelProperty(value = "主要行业编码110（多个行业,隔开）", required = true)
    private String majorIndustries;

    /**
     * 经营状况 编码007
     */
    @ApiModelProperty(value = "经营状况", required = true)
    private String managementCondition;

    /**
     * 单位性质，0:境内登记，1:境外，2：合伙人
     */
    @ApiModelProperty(value = "单位性质，0:境内登记，1:境外，2：合伙人", required = true)
    private String nature;

    /**
     * 企业类别 编码045
     */
    @ApiModelProperty(value = "企业类别 编码045", required = true)
    private String orgCategory;

    /**
     * 组织机构代码
     */
    @ApiModelProperty(value = "组织机构代码", required = true)
    private String orgCode;

    /**
     * 企业级次 编码001
     */
    @ApiModelProperty(value = "企业级次 编码001" , required = true)
    private String orgGradation;

    /**
     * 组织机构id
     */
    @ApiModelProperty(value = "组织机构id")
    private String orgId;

    /**
     * 企业名称
     */
    @ApiModelProperty(value = "企业名称", required = true)
    private String orgName;

    /**
     * 组织形式 编码002
     */
    @ApiModelProperty(value = "组织形式 编码002", required = true)
    private String organizationForm;

    /**
     * 实缴出资额
     */
    @ApiModelProperty(value = "实缴出资额 nature=2(合伙企业) 必填")
    private String paidCapital;

    /**
     * 上级id
     */
    @ApiModelProperty(value = "上级id")
    private String parentId;

    /**
     * 主要经营场所
     */
    @ApiModelProperty(value = "主要经营场所")
    private String premises;

    /**
     * 业名称预先核准通知书理由描述
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "业名称预先核准通知书理由描述")
    private String priorNotice;

    /**
     * 核准单位
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "核准单位")
    private String priorNoticeOrgName;

    /**
     * 注册地
     */
    @ApiModelProperty(value = "注册地", required = true)
    private String regAddress;

    /**
     * 注册资本(本币)
     */
    @ApiModelProperty(value = "注册资本(本币)", required = true)
    private String regCapital;

    /**
     * 设立注册日期
     */
    @ApiModelProperty(value = "设立注册日期", required = true)
    private String regDate;



    /**
     * 产权登记情形 编码060
     */
    @ApiModelProperty(value = "产权登记情形", required = true)
    private String situation;

    /**
     * 国家出资企业
     */
    @ApiModelProperty(value = "国家出资企业", required = true)
    private String stateFundedName;

    /**
     * 国资监管机构 编码064
     */
    @ApiModelProperty(value = "国资监管机构 编码064", required = true)
    private String stateOwnedInstitution;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 认缴出资额
     */
    @ApiModelProperty(value = "认缴出资额 nature=2(合伙企业) 必填")
    private String subscribedCapital;

    /**
     * 合伙期限
     */
    @ApiModelProperty(value = "合伙期限")
    private String term;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    /**
     * 修改用户
     */
    @ApiModelProperty(value = "修改用户")
    private String updateUser;

    /**
     * 验资报告号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "验资报告号")
    private String verificationCode;

    /**
     * 中介机构名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "中介机构名称")
    private String verificationName;

    /**
     * 验资报告理由描述
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "验资报告理由描述")
    private String verificationReason;

    /**
     * 特殊目的
     */
    @ApiModelProperty(value = "特殊目的")
    private String regPurpose;

    /**
     * 注册目的
     */
    @ApiModelProperty(value = "注册目的  nature=1(境外企业) 必填")
    private String netWorking;

    /**
     * 所属行政单位id
     */
    @ApiModelProperty(value = "所属行政单位id")
    private String competentOrganization;

    /**
     * 与国家出资企业的关系 编码126
     */
    @ApiModelProperty(value = "与国家出资企业的关系")
    private String stateFundedRelation;

    /**
     * 国家出资企业统一信用编码
     */
    @ApiModelProperty(value = "国家出资企业统一信用编码")
    private String stateCode;

    /**
     * 国家出资企业
     */
    @ApiModelProperty(value = "国家出资企业")
    private String stateEnterprises;

    /**
     * 认缴出资额币种 编码014
     */
    @ApiModelProperty(value = "认缴出资额币种 编码014 nature=2(合伙企业) 必填")
    private String subscribedCurrency;

    /**
     * 实缴出资额币种 编码014
     */
    @ApiModelProperty(value = "实缴出资额币种 编码014 nature=2(合伙企业) 必填")
    private String paidCurrency;

    /**
     * 功能分类
     */
    @ApiModelProperty(value = "功能分类", required = true)
    private String functionalCategoryName;

    /**
     * 是否混改
     */
    @ApiModelProperty(value = "是否混改 0否1是", required = true)
    private String isMix;

    /**
     * 是否合并
     */
    @ApiModelProperty(value = "是否合并 0否1是", required = true)
    private String isGroup;

    /**
     * 所属集团全称
     */
    @ApiModelProperty(value = "所属集团全称", required = true)
    private String affiliatedOrgFullName;

    /**
     * 是否与民资混改
     */
    @ApiModelProperty(value = "是否与民资混改 0否1是", required = true)
    private Integer isPrivateMix;
}
